System development boards used in electronic engineering are a kind of printed circuit boards which include a microprocessor and minimal supported logic circuitry. In addition to allowing engineers to be familiar with the characteristics of a microprocessor and to control the microprocessor by programming codes, system development boards can also be directly utilized to speed up the development of some devices, especially for development of devices having an embedded system. Currently, commercial system development boards in the market, such as Raspberry Pi, Edison development board of Intel (Galileo), LinkIt One platform, and Banana Pi, are developed based on some processor architecture (e.g. ARM or x86). They have certain hardware designs and I/O peripherals. No matter it is for promotion or some appeals, complete specifications of these system development boards are all open to users so that the users are able to continue subsequent development or applications.
Usually, subsequent development or applications of these system development boards is to control the hardware on these system development boards through C programming language or a more low-level language, the assembly language. If the development or applications are communicating with or controlling other devices, for example, remotely controlling a robot for more detailed actions through an available remote control, most systems on the system development board only function or control one specific device, and they are not able to setup and manage more devices at the same time. If a subsequent developed product of the system development board can be applied on more devices with similar functions, or a board which has been developed to apply to one device can be further modified and more widely used in other products and applications, it would be great news to the developers and users. It is not only to reduce development cost (labor and materials cost), but squeezes the time for new products launched into the market. Users enjoy the benefits of familiar interface as the new products are using the similar or the same interface. This is really a breakthrough of the product life cycle.
The requirements mentioned above is subject to a well-known problem: it is difficult to learn and apply a low-level programming language used to control the hardware of devices. The effort to modify a developed board is no less than the effort to develop a new board. High-level programming languages used by the developers, such as JAVA and Objective C, can control some operations of the hardware by current operating system and specific API (Application Programming Interface) provided for the language. However, since there is no specified definition for the operations of hardware or functions not available from the language, programmers must co-operate with hardware engineers who can use the low-level programming language to control the hardware to find a solution. Because the programmers mainly deal with development of the products, user experience and related interface are usually be omitted or special cases can not be taken into consideration, such extra issues need more time to communicate with the hardware engineers to define the requirements and quality assurance. For developers, such situation increases labor cost. However, for now, no matter the programmers and users, they all cannot have an overall understanding of the product and use the low-level programming language to finish development.
Therefore, to reduce the development threshold, it is much desired to construct an easily used architecture and system suitable for every system development based on a low-level programming language and specific development boards. This makes it possible for everyone to use a high-level programming language or interface to finish the management or development of devices.